﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Telerik.Web.UI;
using SMA.GENTEv1;

public partial class Protegidos_Administracao_Cadastros_acConvencaoBeneficios : PageBase
{
    private const int ItemsPerRequest = 10;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
            OcultaCampos(true);
    }

    #region Eventos
    protected void btnPesquisar_Click(object sender, EventArgs e)
    {
        Pesquisa();
        rgConvencao.DataBind();
        OcultaCampos(false);
    }

    protected void btnLimpar_Click(object sender, EventArgs e)
    {
        OcultaCampos(true);
    }

    protected void rgConvencao_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        Pesquisa();
    }

    protected void rgConvencao_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        if (e.CommandName == "Select")
        {
            int idConvencao = Int32.Parse(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["IdConvencaoSindicato"].ToString());

            Server.Transfer("acCadConvencaoBeneficios.aspx?idConvencao=" + idConvencao.ToString() + "&TipoRegra=2");
        }
    }

    protected void rcbSindicato_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
    {
        Organizacao organizacao = new Organizacao();
        List<Organizacao> listOrganizacao = organizacao.SelectPor(3);

        int itemOffset = e.NumberOfItems;
        int endOffset = Math.Min(itemOffset + ItemsPerRequest, listOrganizacao.Count);
        e.EndOfItems = endOffset == listOrganizacao.Count;

        for (int i = itemOffset; i < endOffset; i++)
        {
            rcbSindicato.Items.Add(new RadComboBoxItem(listOrganizacao[i].NomeFantasia, listOrganizacao[i].IdOrganizacao.ToString()));
        }

        e.Message = GetStatusMessage(endOffset, listOrganizacao.Count);
    }
    #endregion

    #region Métodos
    private void Pesquisa()
    {
        rgConvencao.DataSource = CarregaConvencaoVigencia((rcbSindicato.SelectedValue == string.Empty) ? 0 : int.Parse(rcbSindicato.SelectedValue));
    }

    public List<Convencao> CarregaConvencaoVigencia(int _sindicato)
    {
        Convencao convencao = new Convencao();
        List<Convencao> listConvencao = convencao.SelectConvencaoVigencia(_sindicato, false, false);

        return listConvencao;
    }

    private static string GetStatusMessage(int offset, int total)
    {
        if (total <= 0)
            return "No matches";

        return String.Format("Items <b>1</b>-<b>{0}</b> de <b>{1}</b>", offset, total);
    }

    protected void OcultaCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
    }
    #endregion
}
